from peewee import CharField, IntegerField, DateTimeField, BooleanField, CompositeKey
from playhouse.mysql_ext import JSONField

from application.db import get_database_connection
from application.db.mysql_db.base_mysql_model import BaseMysqlModel


class CnArticleAuthorRelation(BaseMysqlModel):
    """中文文献库文献与作者关系表"""
    article_id = CharField(max_length=32)  # 文献ID，表cn_article_list标识
    author_id = CharField(max_length=32, index=True)  # 作者ID，表cn_article_author_list标识
    unit_id = CharField(max_length=32, null=True, index=True)  # 单位ID，表cn_article_author_unit_list标识
    author_order = IntegerField()  # 作者展示排序
    unit_order = IntegerField(default=1)  # 单位展示排序（对应一作者多单位情况下，单位的排序）
    co_first_author = BooleanField(default=False)  # 是否共同第一作者，0为否，1为是
    corresponding_author = BooleanField(default=False)  # 是否通信作者，0为否，1为是
    author_email = JSONField(null=True)  # 作者E-mail地址，格式如["e-mail_1","e-mail_2",……]
    is_display = BooleanField(default=True)  # 是否展示，0为否，1为是，对于以单位署名的指南类文献通信作者非署名单位的情况，标记该通信作者为不展示

    class Meta:
        table_name = 'cn_article_author_relation'
        database = get_database_connection('default')  # 使用默认数据库